#!/usr/bin/env python
#-------------------------------python---------------------democart.py--#
#                                                                       #
#                     Metodi di Piano cartesiano                        #
#                                                                       #
#--Daniele Zambelli----------------------------------------------2002---#

from pycart import *

def demo():
### Controllare la versione della libreria.
##  p=Plane('Assi')
##  if p.version()<'02.02.00':
##    print "versione un po' vecchiotta"
##  else:
##    print "versione buona"
##
### Disegnare due assi cartesiani con diverse origini.
##  p.axes()
##  p.seto((100, 100))
##  p.axes()
##  p.mainloop()
##
### Disegnare gli assi cartesiani in modo che l'unita' di misura
### sull'asse x sia 30 e sull'asse y sia 20.
##  p=Plane('sx=30; sy=20')
##  p.sets((30, 20))
##  p.axes()
##  p.mainloop()
##  
### Disegnare un quadrato con spessore di 4 pixel.
##  p=Plane('Poligono')
##  p.axes()
##  p.setwidth(4)
##  q=((-50, -30),(30, -50),(50, 30),(-30, 50))
##  p.drawpoly(q)
##  p.mainloop()
##
### Disegnare tre figure di diverso colore
##  p=Plane('Poligoni colorati')
##  p.setwidth(4)
##  p.setcolor('red')
##  q=((-50-200, -30),(30-200, -50),(50-200, 30),(-30-200, 50))
##  p.drawpoly(q)
##  p.setcolor('#fabdc3')
##  q=((-50-150, -30),(30-150, -50),(50-150, 30),(-30-150, 50))
##  p.drawpoly(q)
##  p.setcolor(0.8, 0.75, 0.56)
##  q=((-50-100, -30),(30-100, -50),(50-100, 30),(-30-100, 50))
##  p.drawpoly(q)
##  p.mainloop()
##  
### Disegnare un quadrato in movimento
##  p=Plane('Quadrato in movimento')
##  p.setwidth(4)
##  p.setcolor('red')
##  for i in range(360):
##    p.drawpoly(((-250+i, -30),(-170+i, -50),(-150+i, 30),(-230+i, 50)))
##    p.after(30)
##    p.clear()
##  p.mainloop()
  
### Disegnare un segmento che scivola sugli assi
##  p=Plane('Segmento che scivola sugli assi')
##  p.axes()
##  p.setwidth(4)
##  p.setcolor('navy')
##  lung=200
##  for y in range(200, 0, -1):
##    x=(lung*lung-y*y)**.5
##    s=p.drawsegment((0, y), (x, 0))
##    p.after(4)
##    p.delete(s)
##  for y in range(0, -200, -1):
##    x=(lung*lung-y*y)**.5
##    s=p.drawsegment((0, y), (x, 0))
##    p.after(4)
##    p.delete(s)
##  for y in range(-200, 0):
##    x=-(lung*lung-y*y)**.5
##    s=p.drawsegment((0, y), (x, 0))
##    p.after(4)
##    p.delete(s)
##  for y in range(200):
##    x=-(lung*lung-y*y)**.5
##    s=p.drawsegment((0, y), (x, 0))
##    p.after(4)
##    p.delete(s)
##  p.drawsegment((0, 0), (0, lung))
###  p.drawsegment((0, 0), (lung, 0))
##  p.mainloop()
  
### Disegnare un rettangolo che circonda la finestra grafica
##  p=Plane('Cornice')
##  p.setwidth(4)
##  p.setcolor('green')
##  bordo=10
##  w=p.getcanvaswidth()//2-bordo
##  h=p.getcanvasheight()//2-bordo
##  p.drawpoly(((-w, -h), (w, -h), (w, h), (-w, h)))
##  p.mainloop()
  
# Disegnare un poligono, dopo un secondo cancellare tutto e
# ridisegnarlo con un altro colore
  p=Plane('Poligono', sx=20, sy=20)
  p.axes(True)
  vertici=((-2, -3), (4, -1), (6, 4), (-5, 6))
  p.setcolor("red")
  p.setwidth(20)
  p.drawpoly(vertici)
  p.after(1000)
  p.reset()
  p.setcolor("green")
  p.setwidth(20)
  p.drawpoly(vertici)
  p.mainloop()

### Tracciare una linea tratteggiata in diagonale sullo.
##  p=Plane('Linea tratteggiata')
##  p.setwidth(2)
##  p.setcolor('blue')
##  x=-200; y=-100
##  p.jump((x, y))
##  for i in range(20):
##    x+=10; y+=5
##    p.setpos((x, y))
##    x+=6; y+=3
##    p.jump((x, y))
##  p.mainloop()
##  
### Stampare la posizione del cursore grafico.
##  print(p.getpos())
##
### Produrre un file che contiene il disegno di un quadrato.
##  p=Plane("Salva l'immagine")
##  p.setwidth(4)
##  p.setcolor('red')
##  q=((-50, -30),(30, -50),(50, 30),(-30, 50))
##  p.drawpoly(q)
##  p.save('quadrato')
##  p.mainloop()
##  
### Disegnare un pentagono casuale.
##  from random import randrange
##  p=Plane('Pentagono casuale')
##  p.axes()
##  p.setwidth(4)
##  p.setcolor('blue')
##  q=[]
##  for i in range(5):
##    q.append((100-randrange(200), 100-randrange(200)))
##  p.drawpoly(q)
##  p.mainloop()
##
### Disegna un pentagono casuale con i vertici sulla griglia.
##  from random import randrange
##  p=Plane('Pentagono casuale con i vertici sulla griglia')
##  p.sets((20, 20))
##  p.setcolor('red')
##  p.axes(1)
##  p.setwidth(4)
##  p.setcolor('blue')
##  q=[]
##  for i in range(5):
##    q.append((10-randrange(20), 10-randrange(20)))
##  p.drawpoly(q)
##  p.mainloop()
  
demo()
